package net.feixiang.creational.builder.contrary;

/**
 * 非建造者模式示例
 * <p>
 * 该类展示了在没有使用建造者模式的情况下，如何创建一个计算机对象。由于构造函数参数过多且顺序容易出错，导致代码冗余和可读性差。并且新增属性时需要修改多个构造函数，增加了维护成本。
 * </p>
 *
 * @author 飞翔
 * @see <a href="https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/14.html">建造者模式</a>
 */
public class NonBuilderDemo {
    public static void main(String[] args) {
        // 创建全参数的计算机
        NonBuilderComputer computer1 = new NonBuilderComputer("Intel i7", "16G", "1T", "NVIDIA");
        System.out.println(computer1);

        // 创建部分参数的计算机
        NonBuilderComputer computer2 = new NonBuilderComputer("AMD Ryzen 5", "8G");
        System.out.println(computer2);
    }
}